package lp2.projeto.agenda;

import java.util.List;
import java.awt.*;
import java.awt.event.*;

import javax.swing.*;

import lp2.projeto.gerenciador.*;

/**
 * Dialogo responsavel por informar ao usuario de um determinado conflito de eventos,
 * e escolher o tratamento adequado
 */
public class ConflitoEventoJDialog extends JDialog {
	private static final long serialVersionUID = -1847500421581759337L;

	/**
	 * Construtor padrao
	 * @param eventos Eventos conflitantes
	 * @param acaoRemover Acao caso o usuario escolha remover os eventos conflitantes
	 * @param acaoSobrecarregar Acao caso o usuario escolha sobrecarregar o tempo
	 * @param acaoDesistir Acao caso o usuario desista de adicionar o novo evento
	 */
	public ConflitoEventoJDialog(List<Evento> eventos, ActionListener acaoRemover, ActionListener acaoSobrecarregar, ActionListener acaoDesistir) {
		JPanel panel = (JPanel)getContentPane();
		panel.setLayout(new GridBagLayout());
		
		GridBagConstraints constraints = new GridBagConstraints();
		constraints.fill = GridBagConstraints.HORIZONTAL;
		constraints.gridwidth = 1;
		constraints.gridheight = 1;
		constraints.gridy = 0;
		constraints.gridx = 0;
		panel.add(new JLabel("Os seguintes eventos conflitam com o novo evento:"), constraints);
		
		constraints.gridy = 1;
		constraints.fill = GridBagConstraints.BOTH;
		constraints.weightx = 1.0;
		constraints.weighty = 1.0;
		panel.add(new ListaEventos(eventos, "eventos conflitantes"), constraints);
		
		constraints.weightx = 0.0;
		constraints.weighty = 0.0;
		
		constraints.gridy = 2;
		constraints.fill = GridBagConstraints.HORIZONTAL;
		panel.add(new JLabel("O que deseja fazer?"), constraints);
		
		ActionListener acaoSair = new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				dispose();	
			}
		};
		
		constraints.gridy = 3;
		constraints.gridwidth = 1;
		JButton botaoRemover = new JButton("Remover eventos conflitantes");
		botaoRemover.addActionListener(acaoRemover);
		botaoRemover.addActionListener(acaoSair);
		panel.add(botaoRemover, constraints);
		
		constraints.gridy = 4;
		JButton botaoSobrecarregar = new JButton("Sobrecarregar os eventos");
		botaoSobrecarregar.addActionListener(acaoSobrecarregar);
		botaoSobrecarregar.addActionListener(acaoSair);
		panel.add(botaoSobrecarregar, constraints);
		
		constraints.gridy = 5;
		JButton botaoDesistir = new JButton("Desistir do novo evento");
		botaoDesistir.addActionListener(acaoDesistir);
		botaoDesistir.addActionListener(acaoSair);
		panel.add(botaoDesistir, constraints);
		
		setTitle("Evento conflitante");
		setModal(true);
		setSize(400,500);
		setVisible(true);
	}
}
